//package com.zankong.tool.zkapp.document.popup;
//
//import android.graphics.drawable.BitmapDrawable;
//import android.util.Log;
//import android.view.KeyEvent;
//import android.view.MotionEvent;
//import android.view.View;
//import android.view.ViewGroup;
//import android.widget.PopupWindow;
//
//import com.eclipsesource.v8.JavaCallback;
//import com.eclipsesource.v8.V8Array;
//import com.eclipsesource.v8.V8Function;
//import com.eclipsesource.v8.V8Object;
//
//import org.dom4j.Attribute;
//import org.dom4j.Element;
//
//import myutb.framework.com.utbhouse.R;
//import myutb.framework.com.utbhouse.util.V8Utils;
//
///**
// * Created by YF on 2018/4/17.
// */
//
//public class ZKPopupWindow1 extends PopupWindow {
//    private V8Object document;
//    private final String TAG = "MyPopupWindow";
//    private PopupWindowDialog mAbstractDialog;
//    private Element mElement;
//
//    private int mDarkStyle = -1;
//    private V8Function dismissFn,mResolve;
//
//    public void setAbstractDialog(PopupWindowDialog abstractDialog) {
//        Log.d(TAG,"setContentView");
//        mAbstractDialog = abstractDialog;
//        document = mAbstractDialog.document;
//        mElement = mAbstractDialog.mElement;
//        setAttribute();
//        setDocument();
//        setContentView(mAbstractDialog.getView());
//    }
//
//    public void setResolve(V8Function resolve){
//        mResolve = resolve;
//    }
//
//    private void setAttribute(){
//        for (Attribute attribute : mElement.attributes()) {
//            String value = attribute.getValue();
//            switch (attribute.getName()){
//                case "height":
//                    setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
//                    break;
//                case "weight":
//                    Log.d(TAG,"weight"+value);
//                    setWidth(Integer.parseInt(value));
//                    break;
//                case "dismiss":
//                    dismissFn = V8Utils.genContext(value);
//                    break;
//                case "focusable":
//                    setFocusable(Boolean.parseBoolean(value));
//                    break;
//                case "shadow":
//                    setBackgroundDrawable(new BitmapDrawable());
//                    setOutsideTouchable(Boolean.parseBoolean(value));
//                    break;
//                case "animation":
//                    setAnimationStyle(R.style.anim_menu_bottombar);
//                    break;
//            }
//        }
//
//        mAbstractDialog.getView().setFocusable(true); // 这个很重要
//        mAbstractDialog.getView().setFocusableInTouchMode(true);
//
//        mAbstractDialog.getView().setOnKeyListener(new View.OnKeyListener() {
//            @Override
//            public boolean onKey(View v, int keyCode, KeyEvent event) {
//                if (keyCode == KeyEvent.KEYCODE_BACK) {
//                    dismiss();
//                    return true;
//                }
//                return false;
//            }
//        });
//        setTouchInterceptor(new View.OnTouchListener() {
//            @Override
//            public boolean onTouch(View v, MotionEvent event) {
//                if (event.getAction() == MotionEvent.ACTION_OUTSIDE && !isFocusable()) {
//                    //如果焦点不在popupWindow上，且点击了外面，不再往下dispatch事件：
//                    //不做任何响应,不 dismiss popupWindow
//                    return true;
//                }
//                //否则default，往下dispatch事件:关掉popupWindow，
//                return false;
//            }
//        });
//    }
//
//    @Override
//    public void dismiss() {
//        super.dismiss();
//        if (dismissFn!=null){
//            dismissFn.call(null,document);
//            dismissFn.release();
//        }
//    }
//
//    public void setDocument(){
//        document.registerJavaMethod(new JavaCallback() {
//            @Override
//            public Object invoke(V8Object receiver, V8Array parameters) {
//                dismiss();
//                return null;
//            }
//        },"finish");
//        document.registerJavaMethod(new JavaCallback() {
//            @Override
//            public Object invoke(V8Object receiver, V8Array parameters) {
//                V8Object obj = parameters.getObject(0);
//                if (mResolve!=null){
//                    mResolve.call(null,obj);
//                }
//                obj.release();
//                return null;
//            }
//        },"result");
//        document.registerJavaMethod(new JavaCallback() {
//            @Override
//            public Object invoke(V8Object receiver, V8Array parameters) {
//                V8Object obj = parameters.getObject(0);
//                if (mResolve!=null){
//                    mResolve.call(null,obj);
//                }
//                obj.release();
//                return null;
//            }
//        },"next");
//
//
////        document.registerJavaMethod(new JavaCallback() {
////            @Override
////            public Object invoke(V8Object receiver, V8Array parameters) {
////                Boolean aBoolean = parameters.getBoolean(0);
////                if (isShowing() == true){
////                    dismiss();
////                }
////                return null;
////            }
////        },"isShow");
//    }
//
//
//
//
//
//}
